home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1994-03-12 | 3.0 KB | 110 lines |
- ' *************************************
- ' * *
- ' * Lame Sine Curves V1.0 *
- ' * Written by Chris Hodges *
- ' * *
- ' *************************************
- '
- Hide
- Degree
- Dim LG(1),SI(359)
- For A=0 To 359
- SI(A)=Int(Sin(A)*128.0+128.0)
- Next
- Screen Open 0,320,100,2,0 : Screen Hide
- Curs Off : LG(0)=Logbase(0)
- For A=0 To 99
- Draw 129-A,A To 180+A,A
- Next
- Screen Open 1,320,200,2,0 : Screen Hide
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
- LG(1)=Logbase(0)
- Palette $516,0,0,$222,$FFF,$FFF,$EEE,$EEE
- Copper Off
- Cop Reset
- Cop Move $100,$200
- Cop Wait $FE,$FF
- Cop Swap
- Cop Reset
- AD=Cop Logic
- A$= Extension_16_08D2(0)
- For A=0 To 7
- Cop Movel $120+A*4,Varptr(A$)
- Next
- Cop Move $100,0
- Cop Wait $80,$2E
- For A=0 To 31
- Cop Move $180+A*2,Colour(A mod 16)
- Next
- Cop Movel $108,0 : Rem BPL1MOD BPL2MOD
- Cop Movel $102, Extension_16_0946(32) : Rem BPLCON1 BPLCON2
- Cop Move $8E,$3081 : Rem DIWSTRT
- Cop Move $90,$F0C1 : Rem DIWSTOP
- Cop Move $92,$38 : Rem DDFSTRT
- Cop Move $94,$D0 : Rem DFFSTOP
- 'Cop Movel $E0,LG(0)
- Cop Movel $E4,LG(1)+6*40
- Cop Movel $E8,LG(1)+8*40
- 'Cop Movel $F0,Lg(4)
- Cop Move $100,$3200 : Rem BLPCON0
- Cop Move $96,$8180 : Rem DMACON
- S$="**************************************$$"
- S$=S$+"Who said, it couldn't be done in AMOS?$"
- S$=S$+"Sure, it is slow at the moment, but it$"
- S$=S$+"can made so fast to run in one frame! $"
- S$=S$+" $"
- S$=S$+"Still Assembler is the best, but AMOS $"
- S$=S$+"can do it without hours and hours of $"
- S$=S$+"work. $"
- S$=S$+" $"
- S$=S$+"Keep on coding! ;) $$"
- S$=S$+"Press any key to quit!!!$$"
- S$=S$+"**************************************"
- XP=0 : YP=1 : SP=1
- P=0 : R1=24 : R2=4 : SP1=-3 : SP2=2
- PA=P
- For D=0 To 199
- A= Extension_16_093A(SI(PA mod 360)*R1,9)+ Extension_16_093A(SI( Extension_16_093A(PA+180,1) mod 360)*R2,9)
- Cop Wait 10,$30+D
- Cop Movel $E0,LG(0)+A*40
- Cop Move $182,Min( Extension_16_093A(A,2),13)*$101+Max( Extension_16_093A(A,2)-6,0)*$10+$202
- Add PA,3
- Next
- Cop Wait 0,$12E
- Cop Move $100,0 : Rem DMACON
- Cop Wait $FE,$FF
- Repeat
- Add AD,2
- Until Deek(AD)=$E0
- Cop Swap
- Every 3 Gosub WRITE
- Every On
- Repeat
- Wait Vbl
- PA=P : CA=AD
- For D=0 To 199
- A= Extension_16_093A(SI(PA mod 360)*R1,8)+ Extension_16_093A(SI( Extension_16_093A(PA+180,1) mod 360)*R2,8)
- B=LG(0)+A*40
- Doke CA+2, Extension_16_0946(B)
- Doke CA+6,B
- Doke CA+10,Min( Extension_16_093A(A,2),13)*$101+Max( Extension_16_093A(A,2)-6,0)*$10+$202
- Add CA,16 : Add PA,3
- Next
- Add P,8
- Add R1,SP1 : If R1+SP1<0 or R1+SP1>49 Then SP1=-SP1
- Add R2,SP2 : If R2+SP2<0 or R2+SP2>49 Then SP2=-SP2
- Until Mouse Key or(Inkey$<>"")
- Copper On
- End
- WRITE:
- If SP>Len(S$) Then Return
- P$=Mid$(S$,SP,1)
- If P$="$" Then XP=0 : Inc YP : Inc SP : Goto WRITE
- Locate XP,YP : Print P$;
- Inc XP : Inc SP
- Every On
- Return
- Procedure COPL[ADR,V]
- Doke ADR, Extension_16_0946(V)
- Doke ADR+4,V
- End Proc